The present invention relates to electronic data-processing systems, and more particularly concerns provision for using a pointing device such as a mouse in each of multiple character-based dependent workstations or dumb terminals controlled by a single processor or workstation controller.
Interactive application programs and systems have undergone a swarm to more natural forms of user interaction. Personal computers and intelligent workstations are rife with informative display configurations and with non-keyboard input devices. The pointing device known as a mouse is especially favored by software and system designers. This device--and close cousins such as the trackball, the trackpoint, and the digitizing tablet--has a body which a user can move across a surface, and one or more buttons or other controls on the body which the user can actuate. Motion of the mouse produces a corresponding motion of a mouse cursor or similar symbol on the display screen which points to an element of the information on the screen. Actuation of a button signals the application program or some other part of the system to perform a function defined by the type of actuation and by the program. For example, a press and release (a "click") of a mouse's left button while the mouse cursor points to a data-entry display field might signal the presentation-manager program of a personal computer to move a data cursor to that field. Two press-release cycles within a short time (a "double click") could transmit data entered in the entry field to the application program. Other actuations, such as "drag and drop" (moving the mouse with a button held down) are also known in the art. In the sequel, the term "mouse" will be used as a generic term including all such pointing devices.
One large group of users has been left behind in the mass migration to pointing devices. Most midrange and mainframe computer systems connect to dozens, hundreds, or even thousands of inexpensive terminals known as dependent, nonprogrammable, or dumb terminals, which will be collectively referred to as DWSs. Such terminals do contain programmable microprocessors, but they do not themselves perform an application program for the user. Multiple DWSs may connect directly to the main processor of the system, or to a workstation controller (WSC). One or more WSCs may connect locally or remotely to the main processor which ultimately executes application programs. The WSC or the main processor, collectively the central or host processor, communicate with each DWS by means of data frames which specify the exact layout of data on the DWS's display, and which receive individual keystrokes or other user actions and status messages from the DWS. Also, DWSs are typically character-oriented; they do not have graphic interfaces. That is, the display screen is permanently organized as a number of rows and columns of characters. The different character patterns which can be displayed are defined by patterns in a character generator in the DWS; although multiple or extended character sets can sometimes be defined statically or under indirect host control, only certain character or symbol patterns can be positioned on the screen, and only at predefined locations on the screen. (Although a few DWS terminals support rudimentary "graphics" comprising line elements, circle elements, and so on, no known character-based DWS supports a graphical user interface. So-called X-terminals, which do support graphical interfaces, are not character-based; their screens are internally all-points-addressable, or APA.)
Supporting a mouse or similar pointing device requires a dense flow of data. The supporting processor must sample the mouse many times per second (usually in the range of 20 to 200) to detect motion of the mouse body and actuation of the buttons. The presentation manager or application program must move the mouse cursor on the display fast enough and often enough to avoid distracting delays and jerks, and must react quickly to button operations.
The conventional solution is to implement mouse functions only within intelligent workstation (IWS) terminals, along with the application programs; the wide bandwidth between the IWS processor and its display and input devices allow the user to perceive the necessary feedback from mouse events substantially in real time. However, IWS terminals are expensive. Although the internal processing power of both will increase greatly, IWS terminals will probably remain double or triple the price of DWSs for the foreseeable future.
The straightforward approach for supporting a mouse on a DWS would be to send data frames from the DWS to the host (main processor directly or through a WSC), detect motion and actuation there, and to return data frames to the DWS for moving the mouse cursor and/or performing any other operation at the terminal. However, the data rates for managing a number of DWS mice would quickly overwhelm the bandwidth of the cable or other medium connecting the terminals to the host, and would overwhelm the host processor as well.